

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>gran model hooke model &mdash; LIGGGHTS v3.X documentation</title>
  

  
  
  
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  

  

  
    <link rel="top" title="LIGGGHTS v3.X documentation" href="index.html"/> 

  
  <script src="_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

   
  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search">
          

          
            <a href="Manual.html" class="icon icon-home"> LIGGGHTS
          

          
          </a>

          
            
            
              <div class="version">
                v3.X
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul>
<li class="toctree-l1"><a class="reference internal" href="Section_intro.html">1. Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_start.html">2. Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_input_script.html">3. Input Script</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_commands.html">4. Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_gran_models.html">5. Contact models</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_mesh_modules.html">6. Mesh modules</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_packages.html">7. Packages</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_howto.html">8. How-to discussions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_modify.html">9. Modifying &amp; extending LIGGGHTS(R)-PUBLIC</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_python.html">10. Python interface to LIGGGHTS(R)-PUBLIC</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_errors.html">11. Errors</a></li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="Manual.html">LIGGGHTS</a>
        
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="Manual.html">Docs</a> &raquo;</li>
        
      <li>gran model hooke model</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
            <a href="_sources/gran_model_hooke.txt" rel="nofollow"> View page source</a>
          
          <a href="http://www.cfdem.com"> Website</a>
          
            <a href="Section_commands.html#comm" rel="nofollow"> Commands</a>
            
          
        
      </li>
    
  </ul>

  
  <hr/>
  
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="gran-model-hooke-model">
<span id="index-0"></span><h1>gran model hooke model<a class="headerlink" href="#gran-model-hooke-model" title="Permalink to this headline">¶</a></h1>
<div class="section" id="syntax">
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
<pre class="literal-block">
model hooke [other model_type/model_name pairs as described <a class="reference internal" href="pair_gran.html"><em>here</em></a> ] keyword values
</pre>
<ul class="simple">
<li>zero or more keyword/value pairs may be appended to the end (after all models are specified)</li>
</ul>
<pre class="literal-block">
<em>tangential_damping</em> values = 'on' or 'off'
  on = activates tangential damping
  off = no tangential damping
<em>ktToKnUser</em> values = 'on' or 'off'
  on = uses a different kt, namely kt = 2/7 * kn.
  off = standard implementation kt = kn.
<em>limitForce</em> values = 'on' or 'off'
  on = ensures that the normal force is never attractive (an artefact that can occur at the end of a collision).
  off = standard implementation that might lead to attractive forces.
<em>viscous</em> = 'on' or 'off'
  on = restitution coefficient varies with a local Stokes number of the particle. Requires additional global properties to be specified
  off = no modification to the restitution coefficient
<em>heating_normal_hooke</em> values = 'on' or 'off'
  on = model contributes to surface heating in the frame of <code class="xref doc docutils literal"><span class="pre">surface</span> <span class="pre">sphere/heatable</span></code>
  off = model does not contributes to surface heating
<em>disableNormalWhenBonded</em> values = 'on' or 'off'
  on = if the <code class="xref doc docutils literal"><span class="pre">cohesion</span> <span class="pre">bond</span></code> model is used, then the normal force is only added if the two particles are not bonded
  of = the normal force is always added if two particles overlap
<em>computeDissipatedEnergy</em> values = 'on' or 'off'
  on = the normal model saves the dissipated energy for each contact for the
  use in <code class="xref doc docutils literal"><span class="pre">fix</span> <span class="pre">calculate/dissipated_energy</span></code>
  of = no values are saved
<em>computeElasticPotential</em> values = 'on' or 'off'
  on = the normal model saves the current elastic potential for each contact
  for the use in <code class="xref doc docutils literal"><span class="pre">fix</span> <span class="pre">calculate/normal_elastic_energy</span></code>
</pre>
</div>
<div class="section" id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
<p>This granular model uses the following formula for the frictional force between two granular
particles, when the distance r between two particles of radii Ri and Rj is less than their
contact distance d = Ri + Rj. There is no force between the particles when r &gt; d:</p>
<img alt="_images/pair_gran_html_60b8ced2.png" class="align-center" src="_images/pair_gran_html_60b8ced2.png" />
<p>In the first term is the normal force between the two particles and the second term is the
tangential force. The normal force has 2 terms, a spring force and a damping force. The
tangential force also has 2 terms: a shear force and a damping force. The shear force is
a &#8220;history&#8221; effect that accounts for the tangential displacement (&#8220;tangential overlap&#8221;)
between the particles for the duration of the time they are in contact.
This term is controlled by the <a class="reference internal" href="Section_gran_models.html"><em>tangential model</em></a> in action</p>
<p>Keyword <em>tangential_damping</em> can be used to eliminate the second part of the force in
tangential direction.</p>
<p>The quantities in the equations are as follows:</p>
<ul class="simple">
<li>delta_n = d - r = overlap distance of 2 particles</li>
<li>k_n = elastic constant for normal contact</li>
<li>k_t = elastic constant for tangential contact</li>
<li>gamma_n = viscoelastic damping constant for normal contact</li>
<li>gamma_t = viscoelastic damping constant for tangential contact</li>
<li>delta_t = tangential displacement vector between 2 spherical particles which is truncated to satisfy a frictional yield criterion</li>
<li>rmu = coefficient of rolling friction</li>
<li>contactradius = contact radius, equal to particle radius - 0.5 * delta_n</li>
<li>v_n = normal component of the relative velocity of the 2 particles</li>
<li>v_t = tangential component of the relative velocity of the 2 particles</li>
<li>w_r = relative rotational velocity of the 2 particles</li>
</ul>
<p>The Kn, Kt, gamma_n, and gamma_t coefficients are calculated as follows from the material properties:</p>
<img alt="_images/pair_gran_html_147eaf38.png" class="align-center" src="_images/pair_gran_html_147eaf38.png" />
<img alt="_images/pair_gran_html_m225ba7de.png" class="align-center" src="_images/pair_gran_html_m225ba7de.png" />
<p>To define those material properties, it is mandatory to use multiple <a class="reference internal" href="fix_property.html"><em>fix property/global</em></a> commands:</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global youngsModulus peratomtype value_1 value_2 ...
    (value_i=value for Youngs Modulus of atom type i)
fix id all property/global poissonsRatio peratomtype value_1 value_2 ...
    (value_i=value for Poisson ratio of atom type i)
fix id all property/global coefficientRestitution peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
    (value_ij=value for the coefficient of restitution between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
fix id all property/global coefficientFriction peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
    (value_ij=value for the (static) coefficient of friction between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
</pre></div>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">You have to use atom styles beginning from 1, e.g. 1,2,3,...</p>
</div>
<p>The &#8220;characteristic impact velocity&#8221; is additionally used for hooke:</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global characteristicVelocity scalar value
    (value=value for characteristic impact velocity)
</pre></div>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">You have to use atom styles beginning from 1, e.g. 1,2,3,...</p>
</div>
<p>When the <code class="xref doc docutils literal"><span class="pre">cohesion</span> <span class="pre">model</span> <span class="pre">bond</span></code> is used the
<em>disableNormalWhenBonded</em> keyword can be used. If this parameter is set to &#8216;on&#8217;
then the normal model will only compute its contribution if the two neighboring
particles do not have an active bond. If a bond breaks and the particles overlap
the current <em>delta_n</em> will be set to zero so that no sudden repulsion takes
place. This is handled internally by having an offset value that shrinks to zero
once the particles start drifting apart.</p>
<p><strong>Force Limiting:</strong></p>
<p>Note, that not using limitForce might lead to attractive forces between particles and walls,
especially in case the coefficient of restitution is small. Be sure you include this key word
for the pair style and the wall model if you like to avoid this.</p>
<p><strong>Viscous model:</strong></p>
<p>Using option <em>viscous</em> = stokes adapts the coefficient of restitution as proposed by
<a class="reference internal" href="#legendre"><span>(Legendre)</span></a>, <em>viscous</em> = off performs no modification.</p>
<p>One has to provide the 3 peratomtypepair parameters via a <a class="reference internal" href="fix_property.html"><em>fix property/global</em></a>
command needed for the viscous damping:</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global FluidViscosity peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
    (value_ij=value for fluid viscosity between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
fix id all property/global CriticalStokes peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
    (value_ij=value for critical Stokes number between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
fix id all property/global MaximumRestitution peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
    (value_ij=value for maximum coefficient of restitution between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
</pre></div>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">You have to use atom styles beginning from 1, e.g. 1,2,3,...</p>
</div>
<p>This model contributes to surface heating in the frame of
<code class="xref doc docutils literal"><span class="pre">surface</span> <span class="pre">sphere/heatable</span></code> if the
appropriate flag is activated  (only available in the PREMIUM version).</p>
</div>
<div class="section" id="restrictions">
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
<p>If using SI units, youngsModulus must be &gt; 5e6
If using CGS units, youngsModulus must be &gt; 5e5
When using <em>viscous</em>, FluidViscosity has to be  &gt; 0
When using the limitForce, the specified coefficient of restitution is only approximate. This might
become problematic for low coefficients of resitution as showin in Schwager and Poschel.</p>
<p><em>heating_normal_hertz</em> may not be available in your version of the software.</p>
<p><strong>Coarse-graining information:</strong></p>
<p>Using <code class="xref doc docutils literal"><span class="pre">coarsegraining</span></code> in
combination with this command should lead to
statistically equivalent dynamics and system state.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last"><code class="xref doc docutils literal"><span class="pre">Coarsegraining</span></code> may or
may not be available in LIGGGHTS(R)-PUBLIC.</p>
</div>
</div>
<div class="section" id="default">
<h2>Default<a class="headerlink" href="#default" title="Permalink to this headline">¶</a></h2>
<p><em>viscous</em> = &#8216;off&#8217;
<em>tangential_damping</em> = &#8216;on&#8217;
<em>ktToKnUser</em> = &#8216;off&#8217;
<em>limitForce</em> = &#8216;off&#8217;
<em>heating_normal_hooke</em> = &#8216;off&#8217;</p>
<p id="legendre"><strong>(Legendre)</strong> Legendre, Daniel and Guiraud. Phys. Fluids 17, 097105 (2005).</p>
<p><strong>(Di Renzo)</strong> Alberto Di Renzo, Francesco Paolo Di Maio, Chemical Engineering Science, 59 (3), p 525-541 (2004).</p>
<p><strong>(Ai)</strong> Jun Ai, Jian-Fei Chen, J. Michael Rotter, Jin Y. Ooi, Powder Technology, 206 (3), p 269-282 (2011).</p>
<p><strong>(Brilliantov)</strong> Brilliantov, Spahn, Hertzsch, Poschel, Phys Rev E, 53, p 5382-5392 (1996).</p>
<p><strong>(Schwager)</strong> Schwager, Poschel, Gran Matt, 9, p 465-469 (2007).</p>
<p><strong>(Silbert)</strong> Silbert, Ertas, Grest, Halsey, Levine, Plimpton, Phys Rev E, 64, p 051302 (2001).</p>
<p><strong>(Zhang)</strong> Zhang and Makse, Phys Rev E, 72, p 011301 (2005).</p>
</div>
</div>


           </div>
           <div class="articleComments">
            
           </div>
          </div>
          <footer>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2016, DCS Computing GmbH, JKU Linz and Sandia Corporation.

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'./',
            VERSION:'v3.X',
            LANGUAGE:'None',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true,
            SOURCELINK_SUFFIX: ''
        };
    </script>
      <script type="text/javascript" src="_static/jquery.js"></script>
      <script type="text/javascript" src="_static/underscore.js"></script>
      <script type="text/javascript" src="_static/doctools.js"></script>

  

  
  
    <script type="text/javascript" src="_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>